package ctrFinanceiro.dao;

import java.util.List;

import ctrFinanceiro.dmp.Categoria;
import ctrFinanceiro.iface.IDAO;


public class CategoriaDAO implements IDAO<Categoria, Integer>{
	
	public CategoriaDAO() {
	}

	@Override
	public void incluir(Categoria objeto) {
		Persistencia.persist(objeto);
		
	}

	@Override
	public void atualizar(Categoria objeto) {
		Persistencia.update(objeto);
		
	}

	@Override
	public void remover(Categoria entidade) {
		Persistencia.delete(entidade);
	}

	@Override
	public Categoria buscarPorId(Integer id) {
		return (Categoria) Persistencia.findById(Categoria.class, id);
	}


	public Categoria getCategoriaPorDescricao(String descricao) {
		return (Categoria) Persistencia.find("Categoria.findByDescricao",
				new Object[] { descricao });
	}

	@SuppressWarnings("unchecked")
	public String[] getInfoCategorias() {
		List<Categoria> categorias = (List<Categoria>) Persistencia.getLista(
				"Categoria.findAll", null);
		if (categorias.isEmpty()) {
			return new String[] { "" };
		}
		String[] lista = new String[categorias.size()];
		int cont = 0;
		for (Categoria Categoria : categorias) {
			StringBuilder sb = new StringBuilder();
			sb.append(String.valueOf(Categoria.getIdCat()));
			sb.append(" - ");
			sb.append(Categoria.getDescricao());
			sb.append(" - ");
			sb.append(Categoria.getTipo());
			lista[cont] = sb.toString();
			cont++;
		}
		return lista;
	}
	
	@SuppressWarnings("unchecked")
	public List<Categoria> getCategorias(){
		return (List<Categoria>) Persistencia.getLista("Categoria.findAll", null);
	}
}
